The present disclosure generally relates to computing devices and systems, and more specifically, improving use and sharing of data between different processing entities/agents on a computing device.
Traditionally, computing devices have an operating system executing from memory on one or more processing entities, such as processing cores. Such operating systems have segmented and isolated boundaries within the executing software or instructions. Such segmentation of the executing software may be implemented using software and/or hardware mechanisms. The segmentation and isolation of certain sections of the executing software allow for secure execution of machine critical tasks. Such segmentation and isolation of the executing software generally result in instructions executing in different privilege levels from different areas of memory.
Although, in certain instances, different software agents operating with different privileges may increase stability of the system, it can also result in increased overhead of communication between different agents operating at different privileges or even at the same privilege. One such example is sharing data between different agents in an operating environment. In many instances, the agents are forced to copy the entire data to their local memory space before the agent can use or work on the dataset. If multiple agents are required to work on the same dataset sequentially, the dataset is traditionally copied over and over again resulting in degraded performance of the system.